package com.ptt.sqm.activity;

import com.ptt.sqm.util.AppUtil;
import com.ptt.sqmonmobile.R;

import android.app.ActionBar;
import android.app.FragmentManager;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTabHost;
import android.support.v4.widget.DrawerLayout;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;



public class StationActivity extends DefaultFragmentActivity implements NavigationDrawerFragment.NavigationDrawerCallbacks{

	private static final String STATE_SELECTED_POSITION = "selected_navigation_drawer_position";
	/**
	 * Fragment managing the behaviors, interactions and presentation of the
	 * navigation drawer.
	 */
	private NavigationDrawerFragment mNavigationDrawerFragment;

	 // Fragment TabHost as mTabHost
    private FragmentTabHost mTabHost;
	/**
	 * Used to store the last screen title. For use in
	 * {@link #restoreActionBar()}.
	 */
	private CharSequence mTitle;
			
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_station);
				
		mNavigationDrawerFragment = (NavigationDrawerFragment) getFragmentManager()
				.findFragmentById(R.id.navigation_drawer);		
		mTitle = getTitle();

		// Set up the drawer.
		mNavigationDrawerFragment.setUp(R.id.navigation_drawer,
				(DrawerLayout) findViewById(R.id.drawer_layout));
		
		Resources res = getResources();
		 mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost);
	        mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);

	        
	        
	        View tabIndicator = LayoutInflater.from(this).inflate(R.layout.tab_indicator, null);
	        TextView title = (TextView) tabIndicator.findViewById(R.id.title);
	        title.setText(getString(R.string.customer_tab));
	        
	        mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator(tabIndicator),
	        		CustomerFragment.class, null);
 
	        tabIndicator = LayoutInflater.from(this).inflate(R.layout.tab_indicator, null);
	        title = (TextView) tabIndicator.findViewById(R.id.title);
	        title.setText(getString(R.string.location_tab));
	        mTabHost.addTab(mTabHost.newTabSpec("tab2").setIndicator(tabIndicator),
	        		LocationFragment.class, null);
	        
	        tabIndicator = LayoutInflater.from(this).inflate(R.layout.tab_indicator, null);
	        title = (TextView) tabIndicator.findViewById(R.id.title);
	        title.setText(getString(R.string.extension_tab));
	        mTabHost.addTab(mTabHost.newTabSpec("tab3").setIndicator(tabIndicator),
	        		LocationFragment.class, null);

	        
	        mNavigationDrawerFragment.mDrawerListView.setItemChecked(3, true);

	}

	@Override
	public void onNavigationDrawerItemSelected(int position) {
		// update the main content by replacing fragments
		FragmentManager fragmentManager = getFragmentManager();

		onSectionAttached(position + 1);

		switch (position) {
			case 1 :
				Intent it1 = new Intent(getApplicationContext(),
						MainActivity.class);
				it1.putExtra(AppUtil.SAVED_POSITION, 1);
				startActivity(it1);
				break;

			case 2 :
				Intent it2 = new Intent(getApplicationContext(),
						MainActivity.class);
				it2.putExtra(AppUtil.SAVED_POSITION, 2);
				startActivity(it2);
				break;

			case 3 :
				Intent it3 = new Intent(getApplicationContext(),
						StationActivity.class);
				it3.putExtra(AppUtil.SAVED_POSITION, 3);
				startActivity(it3);
				break;

			case 4 : {
				// Log out
				session.logoutUser();
				break;
			}
			default :
				break;
		}
	}

	    public void onSectionAttached(int number) {
			switch (number) {
			case 1:
				//mTitle = getString(R.string.title_section1);
				break;
			case 2:
				mTitle = getString(R.string.title_section1);
				break;
			case 3:
				mTitle = getString(R.string.title_section2);
				break;
			case 4:
				mTitle = getString(R.string.title_section3);
				break;
			case 5:
				mTitle = getString(R.string.title_section4);
				break;
			}
		}
	    public void restoreActionBar() {
			ActionBar actionBar = getActionBar();
			actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
			actionBar.setDisplayShowTitleEnabled(true);
			actionBar.setTitle(mTitle);
		}

		@Override
		public boolean onCreateOptionsMenu(Menu menu) {
			if (!mNavigationDrawerFragment.isDrawerOpen()) {
				// Only show items in the action bar relevant to this screen
				// if the drawer is not showing. Otherwise, let the drawer
				// decide what to show in the action bar.
				getMenuInflater().inflate(R.menu.main, menu);
				restoreActionBar();
				return true;
			}
			return super.onCreateOptionsMenu(menu);
		}

		@Override
		public boolean onOptionsItemSelected(MenuItem item) {
			// Handle action bar item clicks here. The action bar will
			// automatically handle clicks on the Home/Up button, so long
			// as you specify a parent activity in AndroidManifest.xml.
			int id = item.getItemId();
			if (id == R.id.action_settings) {
				return true;
			}
			return super.onOptionsItemSelected(item);
		}
		
	    @Override
	    protected void onPostCreate(Bundle savedInstanceState) {
	        super.onPostCreate(savedInstanceState);
	        // Sync the toggle state after onRestoreInstanceState has occurred.
	        
	    }	

	    @Override
		public void onSaveInstanceState(Bundle outState) {
			super.onSaveInstanceState(outState);	
		}
}
